|
MrZ مبرمج
تاريخ التسجيل » Mar 2002
البلد » سوريا - حلب
عدد المشاركات » 567
بمعدل » 0.74 مشاركة لكل يوم |
فائدة : تعلم كيف تربط برنامجك مع قاعدة بيانات على
الانترنت
بسم الله الرّحمن
الرّحيم
إنّ عملية الاتصال بقاعدة بيانات أكسس على
الإنترنت هي عملية سهلة ، ولكنها في غالب الأحيان ليست مجانية ،
فعلى سبيل المثال يمكنك ربط برنامجك مع قاعدة بيانات على
الإنترنت من خلال نظام التشغيل ويندوز مع مزود ويب IIS ضمن
بروتوكول HTTP ويقوم بتبادل البيانات على هيئة XML أو هيئة خاصة
بـ ADO ولعمل ذلك يمكنك اتباع خطوات تفعيل خدمة RDS ، يمكنك
مراجعة المقال هنا
و لا أعتقد أن أحداً يقدم
هذه الخدمة بشكل مجاني ، لذلك فإنّ الحل حالياً يكمن في تصميم
برنامج يقوم بالتعامل غير المباشر مع قاعدة البيانات تلك ، فما
السبيل إلى ذلك ؟
خطرت لي الفكرة عندما كنت أقرأ المقال السابق عندما اقترح الأخ مدني حلاً
لمشكلة الاتصال بقاعدة بيانات على الإنترنت بأن نضع Script ضمن
صفحة ASP في موقع يقبل التعامل مع ASP وليكن http://www.brinkster.com/ ، هذا السكريبت
يقوم بعملية الاتصال الداخلي بقاعدة البيانات الموجودة على
الموقع المستضيف وينشئ معها اتصال باستخدام ADODB.Connection ،
وكانت فكرة الأخ مدني بأن يقوم هذا السكريبت باستقبال استعلام
SQL المراد تنفيذه على قاعدة البيانات ، وتكون طريقة الاستقبال
تلك بأن يكون الاستعلام على شكل جزء من عنوان صفحة ال ASP التي
تحتوي على السكريبت الهدف:
code:
www23.brinkster.com/MySite/MyPage.asp?query=SELECT*FROM mytable_tbl | |
عندها سيقوم السكريبت بتنفيذ
الاستعلام الموجود بعد المتغير query ، ويقوم السكريبت بحفظ
نتائج الاستعلام الموجودة في (ADODB.Recordset) ضمن ملف نصي عادي
على السير فر المضيف ومن ثمّ يرسل البيانات من الملف النصي إلى
برنامج الفيجول بيسك الموجود على حاسبك الشخصي باستخدام
(ADODB.Stream) ، هذه هي طريقة الأخ مدني ، وقد اختلفت معه فقط
بالعملية الأخيرة وحسب، أي في إعادة نتائج الاستعلام إلى برنامج
الفيجول بيسك ، وذلك بسبب رئيسي : هو أن طريقة الأخ مدني في حفظ
ال Recordset ضمن ملف نصي ومن ثم إرساله عن طريق Stream لن
يقبلها السير فر لأنّ هذه العملية تتطلّب إنشاء ملف على السير
فر(الملف النصي) وهذه الخدمة ليست مجانية ! إذا ما العمل ؟
الحل الذي توصلت إليه بفضل الله هو كالتالي :
1- نستخدم
أداة Microsoft Transfer Control أي (Inet1) في إرسال رابط صفحة
ال ASP التي تحتوي على السكريبت ونرفق مع رابط الصفحة الاستعلام
المطلوب تنفيذه كما ذكرنا منذ قليل :
code:
Result = Inet1.OpenURL(“www23.brinkster.com/vbcontrol/datasheet.asp?query=SELECT*FROM PersonData_tbl”) | | نلاحظ أن القيمة المعادة سنحتفظ
بها في المتغير النصي Result
2- عند تنفيذ العبارة
السابقة سيقوم السكريبت بإنشاء اتصال مع قاعدة البيانات
Pdata.mdb الموجودة على السير فر ويقوم باستخلاص جميع سجلات
الجدول PersonData_tbl ويضعها ضمن كائن Recordset . 3- ستقوم
الآن خوارزمية موجودة ضمن السكريبت بتحويل محتويات ال Recordset
إلى شيفرة نصية خاصة ستقوم بإعادتها إلى برنامجنا ، وستحفظ هذه
الشيفرة ضمن المتغير Result كما ذكرت.
4- بخوارزمية
معاكسة سنقوم بتحويل هذه الشيفرة إلى معلومات ونخزنها ضمن
Recordset جديد ومن ثم نظهرها باستخدام الأداة Microsoft
Hierarchical FlexGrid Control :
code:
Set grdShowData.Recordset = RS | |
ملاحظات :
- الشيفرة النصية المعادة من
السكريبت ستكون من الشكل :
code:
SOD;Fields:عدد الحقول;اسم الحقل1; ];اسم الحقل2; ];اسم الحقل3;…;Records:عدد السجلات;قيمة الحقل الأول في السجل الأول;….;قيمة الحقل الأخير في السجل الأخير; | | كما نرى أنّ الفاصلة المنقوطة ;
تشير إلى المعلومة التي تسبقها ، يمكنك استخدام هذه الشيفرة دون
أي تعديل في أي من مشاريعك المستقبلية لأنّها تعتمد على محتويات
ال Recordset فقط.
- يمكنك استخدام أي نوع من استعلامات
SQL مثل : SELECT ,INSERT,UPDATE,DELETE ولكنّك لن تستطيع
استخدام الاستعلام DELETE مع قاعدة البيانات Pdata.mdb وسيعود لك
السكريبت بالقيمة النصية illegal command خوفاً أن يقوم بعض
الأخوة بتجربة معارفهم على قاعدة البيانات التي لدي ومن ثمّ
حذف جميع السجلات J وكذلك الأمر بالنسبة للتعليمة DROP.
-
يمكنك في حال استخدام أكثر من جدول أن تربط بينهما بأي شكل ممكن
حسب تعليمات SQL كما في قاعدة بيانات محلية تماماً.
-
استخدام الأحرف العربية مع الأسف سيؤدي إلى قيم غير مفهومة عند
استعراض البيانات ، لا أدري ما السبب ولكن ربما موقع
Brinkster.com لا يدعم ذلك ، على العموم هناك حل آخر ولكن حالياً
دعونا نجرب ما وصلنا إليه إلى الآن ولنستخدم الأحرف
اللاتينية.
- الملفات المرفقة مع الموضوع تحتوي على
برنامج قمت بتصميمه يقوم بالتعامل مع قاعدة البيانات Pdata.mdb
الموجودة في موقعي www23.brinkster.com/vbcontrol ، يمكنك تجربة
البرنامج واستخدام إمكانياته ، وأرجو من كل شخص يستخدمه تسجيل
شيء ما في قاعدة البيانات ، كما تحتوي على النص الكامل للسكريبت
الذي ستحفظه في صفحة ضمن الموقع brinkster.com.
مع
تمنياتي بالتوفيق.
لتنزيل الملف
المرفق أنقر الرابط التالي: cdoi.zip بلا مسؤلية على المنتدى إن كان
المرفق يحتوي على فيروسات أو وسائل
تجسس تم
تحميل هذا الملف 617 مرة.
__________________ بسم الله
ماشاء الله لايسوق الخير إلاّ الله بسم الله ماشاء الله لا
يصرف السوء إلاّ الله بسم الله ماشاء الله ماكان من نعمة فمن
الله بسم الله ماشاء الله لاحول ولاقوّة إلاّ
بالله
سلسلة التحكم بمنفذ
الطابعة: ------------------------------------- الدرس الأول
الدرس الثاني(غير مفعّل
حالياً)
الدرس الثالث
الدرس الرابع(غير مفعّل
حالياً)
الدرس
الخامس
اتصالات: ---------- تعلم كيف تستخدم جهاز الهاتف العادي لكتابة اسمك
على شاشة جهازك !!
فائدة : تعلم كيف تربط برنامجك مع قاعدة بيانات
على الانترنت
مقالات
أخرى: ----------------- فائدة : برنامج يقوم بمراقبة عمليات الدخول إلى
الجهاز والإنترنت محمي بكلمة مرور
أخبر
المراقب عن هذا الرد | رقم
الـ IP | تحرير
التوقيع |